Этот модификатор используется для изменения методов и свойств. Он позволяет создать новую реализацию для методов и свойств унаследованных от базового класса. Мы не сможет изменить методы объявленные как non-virtual или static. С помощью этого модификатора нельзя изменить уровень доступа. Давайте рассмотрим типичный пример.
using System;
using System.Windows.Forms;
using System.Drawing;
class TestApp
{
public static void Main()
{
MyMethod m = new MyMethod();
Console.Write(m.Test());
}
class BaseMethod
{
public virtual string Test()
{
return "Hello";
}
}
class MyMethod : BaseMethod
{
public override string Test()
{
return "New Hello";
}
}
}
Здесь мы переопредели метод Test, немного ранее мы так же переопределяли методы обработки сообщений.
protected override void OnMouseDown(MouseEventArgs e)
{
this.Location = new Point (0, 0);
}
protected override void OnMouseUp(MouseEventArgs e)
{
this.Left =200 ;
this.Top = 200;
}